package org.NooLab.itexx.app.config;

import java.util.Map;
import java.util.Properties;

import org.NooLab.utilities.files.DFutils;
import org.NooLab.utilities.logging.CreateLogging;
import org.NooLab.utilities.logging.PrintLog;
import org.NooLab.utilities.strings.StringsUtil;

public interface CrawlerConfigIntf {

	public String getConfigFilePath();

	public void setConfigFilePath(String configFilePath);

	public int getInSiteDepth();

	public void setInSiteDepth(int inSiteDepth);

	
	public int getInSiteMaxDocCount();

	public void setInSiteMaxDocCount(int inSiteMaxDocCount);

	public int getTotalMaxDocCount();

	public void setTotalMaxDocCount(int inSiteMaxDocCount);

	
	public int getOutSitemaxHops();

	public  void load();

	public  String getCompleteDownloadPath(String pathsnip);

	public  void setOutSitemaxHops(int outSitemaxHops);

	public  boolean isSpecificDomainPostProcessing();

	public  void setSpecificDomainPostProcessing(boolean specificDomainPostProcessing);

	public  int getDocsavingmode();

	public  void setDocsavingmode(int docsavingmode);

	public  boolean isAllowClimbingUp();

	public  void setAllowClimbingUp(boolean allowClimbingUp);

	public  void setDownloadsOnlyBelowPath(boolean onlybelow);

	public  boolean getDownloadsOnlyBelowPath();

	public  int getPolitenessDelay();

	public  void setPolitenessDelay(int politenessDelay);

	public  int getMaxConcurrentProcesses();

	public  void setMaxConcurrentProcesses(int maxConcurrentProcesses);

	public  PrintLog getOut();

	public  void setOut(PrintLog out);

	public  int getPrintLevel();

	public  void setPrintLevel(int printlevel);

	public  CreateLogging getLogging();

	public  boolean isDenyOutLinksbyImage();

	public  void setDenyOutLinksbyImage(boolean denyOutLinksbyImage);

	public  boolean isDeferOutLinksinMenu();

	public  void setDeferOutLinksinMenu(boolean deferOutLinksinMenu);

	public  int getIncludeImages();

	public  void setIncludeImages(int includeImages);

	public  boolean isOnlyImages();

	public  void setOnlyImages(boolean onlyImages);

	public  String getDownloadHomePath();

	public  void setDownloadHomePath(String downloadHomePath);

	public  String getDownloadPath();

	public  void setDownloadPath(String downloadPath);

	public  boolean isPreferOutLinksinText();

	public  void setPreferOutLinksinText(boolean preferOutLinksinText);

	public  boolean isExtraTagsforSavedXDocs();

	public  void setExtraTagsforSavedXDocs(boolean extraTagsforSavedXDocs);

	public  boolean isBelowSeedUrlonly();

	public  void setBelowSeedUrlonly(boolean belowSeedUrlonly);

	public  Map<String, String> getRegexPatterns();

	public  void setRegexPatterns(Map<String, String> regexPatterns);

	public  Properties getProp();

	public  void setProp(Properties prop);

	public  DFutils getFilutils();

	public  void setFilutils(DFutils filutils);

	public  StringsUtil getStrgutil();

	public  void setStrgutil(StringsUtil strgutil);

	public  void setLogging(CreateLogging logging);

	public boolean isSearchEngine() ;

	public void setSearchEngine(boolean isSearchEngine) ;

	public String getDefaultSearchEngine() ;

	public void setDefaultSearchEngine(String defaultSearchEngine) ;

}
